fe2f8170de783d0812b7d2c436b80181c2d88437,src/main/java/net/minecraftforge/gradle/common/BaseExtension.java,BaseExtension,checkMappings,#,247
Before Change
}
else if (mappingMc == null)
{
throw new GradleConfigurationException("The specified mapping '" + getMappings() + "' does not exist!");
}
else
{
After Change
// check if it exists
Map<String, int[]> versionMap = mcpJson.get(version);
if (versionMap == null)
throw new GradleConfigurationException("There are no mappings for MC " + version);
String channel = getMappingsChannelNoSubtype();
int[] channelList = versionMap.get(channel);
if (channelList == null)
throw new GradleConfigurationException("There is no such MCP mapping channel named " + channel);
// all is well with the world
if (searchArray(channelList, mappingsVersion))
return;
// if it gets here.. it wasnt found. Now we try to actually find it..
for (Entry<String, Map<String, int[]>> mcEntry : mcpJson.entrySet())
{
for (Entry<String, int[]> channelEntry : mcEntry.getValue().entrySet())
{
// found it!
if (searchArray(channelEntry.getValue(), mappingsVersion))
{
boolean rightMc = mcEntry.getKey().equals(version);
boolean rightChannel = channelEntry.getKey().equals(channel);
// right channel, but wrong mc
if (rightChannel && !rightMc)
{
throw new GradleConfigurationException("This mapping '" + getMappings() + "' exists only for MC " + mcEntry.getKey() + "!");
}
// right MC , but wrong channel
else if (rightMc && !rightChannel)
{
throw new GradleConfigurationException("This mapping '" + getMappings() + "' doesnt exist! perhaps you meant '" + channelEntry.getKey() + "_" + mappingsVersion + "'");
}
}
}
}
// wasnt found
throw new GradleConfigurationException("The specified mapping '" + getMappings() + "' does not exist!");
}
private static boolean searchArray(int[] array, int key)